跳到主要内容

Julia 异常处理

阐述

函数可以通过抛出一个异常来表示它不能返回一个合理的值。所有异常都是 Exception 类型的子类型,有很多内建的异常类型,也可以定义自己的异常类型。其中,ErrorException 是一类特殊的异常,它代表了程序的严重错误,导致控制流直接终止。

函数可以

  • throw(SomeException(...)) 抛出异常
  • error(message::AbstractString) 直接终止程序
  • 用 try-catch-finally 语句来捕获异常。

实例

julia> struct MyCustomException <: Exception end
julia> f(x) = x>=0 ? exp(-x) : throw(DomainError(x, "argument must be nonnegative"))
f (generic function with 1 method)

julia> fussy_sqrt(x) = x >= 0 ? sqrt(x) : error("negative x not allowed")
fussy_sqrt (generic function with 1 method)

julia> try
sqrt("ten")
catch e
println("You should have entered a numeric value")
end
You should have entered a numeric value

性质

相关内容

参考文献